#pragma once
class FileCategory
{
public:
    // 静态方法：根据文件名获取文件分类
    static std::wstring GetFileCategory(const std::wstring& filename);

    // 静态方法：从文件名中提取扩展名
    static std::wstring GetFileExtension(const std::wstring& filename);

    // 静态方法：将字符串转换为小写
    static std::wstring ToLower(const std::wstring& str);

    // 静态方法：将文件列表按分类分组
    static std::map<std::wstring, std::vector<std::wstring>> CategorizeFiles(
        const std::vector<std::wstring>& files);

private:
    // 私有静态方法：检查扩展名是否属于文档类型
    static bool IsDocument(const std::wstring& ext);

    // 私有静态方法：检查扩展名是否属于图片类型
    static bool IsImage(const std::wstring& ext);

    // 私有静态方法：检查扩展名是否属于视频类型
    static bool IsVideo(const std::wstring& ext);

    // 私有静态方法：检查扩展名是否属于音频类型
    static bool IsAudio(const std::wstring& ext);

    // 私有静态方法：检查扩展名是否属于压缩文件类型
    static bool IsArchive(const std::wstring& ext);

    // 私有静态方法：检查扩展名是否属于可执行文件类型
    static bool IsExecutable(const std::wstring& ext);
};

